﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BMC.ARSystem;
using System.ComponentModel.DataAnnotations;

namespace NRemedy.Test
{

    [NRemedy.ARFormAttribute(FormName = "RegularForm")]
    public class RegularForm : ARBaseForm
    {
        private String _CharacterField;
        private String _DiaryFieldSet;
        private DiaryList _DiaryFieldGet;
        private DateTime _DateTimeField;
        private DateValue _DateField;
        private CurrencyValue _CurrencyField;
        private Int32 _IntegerField;
        private Double _RealNumberField;
        private Decimal _DecimalNumberField;
        private DropDownListField_Enum _DropDownListField;
        private RadioButtonField_Enum _RadioButtonField;
        private CheckBoxField_Enum _CheckBoxField;
        [NRemedy.ARFieldAttribute(DatabaseID = 536870929u, DatabaseName = "Character Field", DataType = ARType.CharacterField)]
        public String CharacterField
        {
            get
            {
                return this._CharacterField;
            }
            set
            {
                this._CharacterField = value;
                this.OnPropertyChanged("CharacterField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870930u, DatabaseName = "Diary Field", DataType = ARType.DiaryField, BinderAccess = ModelBinderAccessLevel.OnlyBind)]
        public DiaryList DiaryFieldGet
        {
            get
            {
                return this._DiaryFieldGet;
            }
            set
            {
                this._DiaryFieldGet = value;
                this.OnPropertyChanged("DiaryFieldGet");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870930u, DatabaseName = "Diary Field", DataType = ARType.DiaryField, BinderAccess = ModelBinderAccessLevel.OnlyUnBind)]
        public String DiaryFieldSet
        {
            get
            {
                return this._DiaryFieldSet;
            }
            set
            {
                this._DiaryFieldSet = value;
                this.OnPropertyChanged("DiaryFieldSet");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870931u, DatabaseName = "Date/Time Field", DataType = ARType.DateTimeField)]
        public DateTime DateTimeField
        {
            get
            {
                return this._DateTimeField;
            }
            set
            {
                this._DateTimeField = value;
                this.OnPropertyChanged("DateTimeField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870932u, DatabaseName = "Date Field", DataType = ARType.DateOnlyField)]
        public DateValue DateField
        {
            get
            {
                return this._DateField;
            }
            set
            {
                this._DateField = value;
                this.OnPropertyChanged("DateField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870933u, DatabaseName = "Currency Field", DataType = ARType.CurrencyField)]
        public CurrencyValue CurrencyField
        {
            get
            {
                return this._CurrencyField;
            }
            set
            {
                this._CurrencyField = value;
                this.OnPropertyChanged("CurrencyField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870934u, DatabaseName = "Integer Field", DataType = ARType.IntegerField)]
        public Int32 IntegerField
        {
            get
            {
                return this._IntegerField;
            }
            set
            {
                this._IntegerField = value;
                this.OnPropertyChanged("IntegerField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870935u, DatabaseName = "Real Number Field", DataType = ARType.RealField)]
        public Double RealNumberField
        {
            get
            {
                return this._RealNumberField;
            }
            set
            {
                this._RealNumberField = value;
                this.OnPropertyChanged("RealNumberField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870936u, DatabaseName = "Decimal Number Field", DataType = ARType.DecimalField)]
        public Decimal DecimalNumberField
        {
            get
            {
                return this._DecimalNumberField;
            }
            set
            {
                this._DecimalNumberField = value;
                this.OnPropertyChanged("DecimalNumberField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870937u, DatabaseName = "Drop-Down List Field", DataType = ARType.SelectionField)]
        public DropDownListField_Enum DropDownListField
        {
            get
            {
                return this._DropDownListField;
            }
            set
            {
                this._DropDownListField = value;
                this.OnPropertyChanged("DropDownListField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870938u, DatabaseName = "Radio Button Field", DataType = ARType.SelectionField)]
        public RadioButtonField_Enum RadioButtonField
        {
            get
            {
                return this._RadioButtonField;
            }
            set
            {
                this._RadioButtonField = value;
                this.OnPropertyChanged("RadioButtonField");
            }
        }
        [NRemedy.ARFieldAttribute(DatabaseID = 536870939u, DatabaseName = "Check Box Field", DataType = ARType.SelectionField)]
        public CheckBoxField_Enum CheckBoxField
        {
            get
            {
                return this._CheckBoxField;
            }
            set
            {
                this._CheckBoxField = value;
                this.OnPropertyChanged("CheckBoxField");
            }
        }
        public enum DropDownListField_Enum
        {
            New = 0,
            Modify = 1,
            Delete = 2,
        }
        public enum RadioButtonField_Enum
        {
            Default1 = 0,
            Default2 = 1,
            Default3 = 2,
        }
        public enum CheckBoxField_Enum
        {
            Default1 = 0,
            Default2 = 1,
            Default3 = 2,
        }


        public enum Status_Enum
        {
            New,
            Assigned,
            Fixed,
            Rejected,
            Closed
        }

        private string _Request_ID;
        private string _Submitter;
        private DateTime _Create_Date;
        private string _Assigned_To;
        private string _Last_Modifed_By;
        private DateTime _Modifed_Date;
        private Status_Enum _Status;
        private string _Short_Description;

        [AREntryKey]
        [ARField(DatabaseID = 1, DatabaseName = "Request ID", DataType = ARType.CharacterField, BinderAccess = ModelBinderAccessLevel.OnlyBind)]
        public string Request_ID
        {
            get
            {
                return _Request_ID;
            }
            protected set
            {
                _Request_ID = value;
                OnPropertyChanged("Request_ID");
            }
        }

        [ARField(DatabaseID = 2, DatabaseName = "Submitter", DataType = ARType.CharacterField)]
        public string Submitter
        {
            get
            {
                return _Submitter;
            }
            set
            {
                _Submitter = value;
                OnPropertyChanged("Submitter");
            }
        }

        [ARField(DatabaseID = 3, DatabaseName = "Create Date", DataType = ARType.DateTimeField, BinderAccess = ModelBinderAccessLevel.OnlyBind)]
        public DateTime Create_Date
        {
            get
            {
                return _Create_Date;
            }
            protected set
            {
                _Create_Date = value;
                OnPropertyChanged("Create_Date");
            }
        }

        [ARField(DatabaseID = 4, DatabaseName = "Assigned To", DataType = ARType.CharacterField)]
        public string Assigned_To
        {
            get
            {
                return _Assigned_To;
            }
            set
            {
                _Assigned_To = value;
                OnPropertyChanged("Assigned_To");
            }
        }

        [ARField(DatabaseID = 5, DatabaseName = "Last Modified By", DataType = ARType.CharacterField, BinderAccess = ModelBinderAccessLevel.OnlyBind)]
        public string Last_Modifed_By
        {
            get
            {
                return _Last_Modifed_By;
            }
            protected set
            {
                _Last_Modifed_By = value;
                OnPropertyChanged("Last_Modifed_By");
            }
        }

        [ARField(DatabaseID = 6, DatabaseName = "Modified Date", DataType = ARType.DateTimeField, BinderAccess = ModelBinderAccessLevel.OnlyBind)]
        public DateTime Modifed_Date
        {
            get
            {
                return _Modifed_Date;
            }
            protected set
            {
                _Modifed_Date = value;
                OnPropertyChanged("Modifed_Date");
            }
        }

        [ARField(DatabaseID = 7, DatabaseName = "Status", DataType = ARType.SelectionField)]
        public Status_Enum Status
        {
            get
            {
                return _Status;
            }
            set
            {
                _Status = value;
                OnPropertyChanged("Status");
            }
        }

        [ARField(DatabaseID = 8, DatabaseName = "Short Description", DataType = ARType.CharacterField)]
        public string Short_Description
        {
            get
            {
                return _Short_Description;
            }
            set
            {
                _Short_Description = value;
                OnPropertyChanged("Short_Description");
            }
        }

    }
}
